classdef Algorithm0able < BatHandle
    %ALGORITHM0ABLE Interface of having base algorithm
    %   Detailed explanation goes here
    
    properties ( SetAccess = protected )
        algorithm0 % Base algorithm
    end
    
    methods % Set methods
        function [  ] = setAlgorithm0( this, algorithm0 )
            if nargin == 1
                algorithm = Algorithm();
                this.algorithm0 = algorithm;
            end
            if nargin == 2
                assert(isa(algorithm0, 'Algorithm'));
                this.algorithm0 = algorithm0;
            end
        end
    end
    
    methods
        function [ this ] = Algorithm0able(  )
            algorithm = Algorithm();
            this.setAlgorithm0(algorithm);
        end
    end
    
end

